package homework4;

public interface IGList<T> {
	IGList<T> addElt(T o);

	IGList<T> remElt(T o);

	// returns the size (length) of the list
	int size();

	// determines whether the list contains the given element
	boolean hasElt(T e);

	// returns list of elements for which predicate returns true
	IGList<T> filter(IPred<T> pred);

	// determines whether predicate returns true on all
	// elements in the list
	boolean andmap(IPred<T> f);
}
